perm filename TUTOR[P,JRA] blob sn#547801 filedate 1980-12-06 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00010 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	outline
C00004 00003	data objects
C00007 00004	language constructs
C00008 00005	prog env.
C00009 00006	implementation issues
C00010 00007	modern issues
C00011 00008	general issues:
C00012 00009	faults in lisp
C00013 00010	what we won't see at the conference
C00014 ENDMK
C⊗;
outline
morning
	9-10:15   intro, history
	10:30-12  modern issues, papers

afternoon
	1:30-3:15 video tapes
	3:30-5:00 discussion sessions


intro to "modern" lisp

alan kay's remark

history of implementations and features they introduced

704 (1.5) → 7090 → 7040     gc, funarg, etc

pdp-1 → sds940 → bbn-lisp → interlisp

pdp-6 maclisp (value cell) → 1.6 → uci (1.6+bbn editor) → yale
			   → bibop maclisp → lm lisp (mac+ mdl)

						→ NIL
						→ Franz lisp

vlisp(10,11,80)

standard lisp

lisp370

wisconsin/maryland lisp

micro lisps

aside: list of available implementations and origin

----------
lisp-ish languages  and features

planner		pdi and related benefits (see prolog)
conniver	context layers (see PIE), a "machine" (see Scheme chip)
muddle		&-syntax; algolish syntax, multiprocessing
ecl		more algolish, extensibility, data type delcarations
scheme		lexical scoping. "chip-able"
smalltalk(?)	object-oriented, classes, windows in env.

data objects
	lists
	   the traditional lisp data structure. everything is a pointer
		and therefore instead of saying "x is a pointer to a foo",
		we need only say "x is a foo". incredible liberation.

	symbols
	   aka literal atoms: pointers must stop somewhere, and in lisp these
		symbols are the primitive objects for representation (naming)
	
	numbers
	   the traditional primitve object in traditional prog. langs.
	 arb. prec.
	    an improvement in lisp's arithmetic (c. 1968) numbers as lists

	arrays
	   the "structured object" in primitive languages
		in lisp, just another tool for data.  key: first-class, but
		many lisp's  slip up here

	strings
	   another ....

	p-lists 
	   to some extent lisp's "record structure", but much more flexible 
		as basis for simple obj-or. programming. (leads into ...)

	functions **
	   yes, functions are data items in lisp: very important. source of much
		current controversy.


	envrionments (as data)  NB this is not what is meant by "prog env"
	   interesting innovation based on soln to function as data: the symbol
		table defining the environment is available as manipulatable
		data.  it is a tree-struture (non-stack) therefore in 1.5 defn
		was a gc-ible commodity.

	control (as data)
	   differs from above: run-time computational history is open to 
		investigation and m→nipulation.	cf. debugging
		this is a freer interpretation than most lisps allow



	hunks (?)

language constructs
	syntactic issues: prog as data
		progs are rep as list structure. 
		  why and when
			jmc and turing machine
		  why it is good
			ediiting,debugging, compiling, ... i.e. prog manipuation
			side-step uninteresting syntax questions. semanitcs lang.

	control: modulo syntax, traditonal
	 do
	 if
	 <=
	function
	catch/throw
	macros
	read macros

prog env.
	interactive language
	    read-eval-print of machine
	windows ala smalltalk and LM


implementation issues
	address space
	  big!

	 typing of data, not identifiers
	  strong type vs. type free
	 tags

	 bibop   (tlc-lisp)
	  why
	  why not

	gc
	 why: cf ref count
	 how:	mark-sweep
	 	compact
	 	real-tiime
	 	multi-process

	shallow/deep binding
	 trade-offs
	 baker(?)

modern issues
	abstract programming
	    construct, select, recog

	object oriented

	funargs

	scoping: lexical/fluid  aka static/dynamic

	prog as data

general issues:
	why lisp for ai
	 lists as rep of iq data
	 flex prog env in exploratory programming

	why lisp for cs

	prop envs.
	sil

faults in lisp
	parallelism
	message passing/object oriented
	fsubrs


what we won't see at the conference

	how to impl lisp on my (least)favorite machine

	AI applications

	programming applications

what we will see at conference

	multi processing

	impl on interesting hardware (NB ¬mit lm ¬→ ¬interesting!)

	general architecture/impl questions

	prog env (fhl and henry)

	non-ai applications

	theory